/**************************************************************************************************
**                                                                                               **
**  文件名称:  app_task_print.c                                                                  **
**  版权所有:  CopyRight @ Xiamen Yaxon NetWork CO.LTD. 2017                                     **
**  文件描述:  打印任务测试模块                                                                  **
**  ===========================================================================================  **
**  创建信息:  | 2018-7-13 | LEON | 创建本模块                                                   **
**  ===========================================================================================  **
**  修改信息:  单击此处添加....                                                                  **
**************************************************************************************************/
#include "app_include.h"
#include "app_task_print.h"

/*************************************************************************************************/
//                           模块宏定义
/*************************************************************************************************/
#define PRINT_TASK_PRIO      5                                                 /* 任务优先级 */
#define PRINT_STK_SIZE       128                                               /* 任务堆栈大小 */

/*************************************************************************************************/
//                           静态变量定义
/*************************************************************************************************/
static OS_TCB  PrintTaskTCB;                                                   /* 任务控制块 */
static CPU_STK PRINT_TASK_STK[PRINT_STK_SIZE];                                 /* 任务堆栈 */

/**************************************************************************************************
**  函数名称:  PrintTask
**  功能描述:  打印任务的实际执行函数
**  输入参数:  无
**  输出参数:  无
**  返回参数:  无
**************************************************************************************************/
static void PrintTask(void *p_arg)
{
    OS_ERR err;
    
    p_arg = p_arg;
    
    while (1) {
        Debug_SysPrint("CPU Usage %.2d.%.2d%%...\r\n", (OSStatTaskCPUUsage / 100), (OSStatTaskCPUUsage % 100));
        OSTimeDlyHMSM(0, 0, 0, 1000, OS_OPT_TIME_HMSM_STRICT, &err);
    }
}

/**************************************************************************************************
**  函数名称:  CreatePrintTask
**  功能描述:  创建打印任务
**  输入参数:  无
**  输出参数:  无
**  返回参数:  无
**************************************************************************************************/
void CreatePrintTask(void)
{
    OS_ERR err;

    OSTaskCreate((OS_TCB    * )&PrintTaskTCB,
                 (CPU_CHAR  * )"PrintTask",
                 (OS_TASK_PTR )PrintTask,
                 (void      * )0,
                 (OS_PRIO     )PRINT_TASK_PRIO,
                 (CPU_STK   * )&PRINT_TASK_STK[0],
                 (CPU_STK_SIZE)PRINT_STK_SIZE / 10,
                 (CPU_STK_SIZE)PRINT_STK_SIZE,
                 (OS_MSG_QTY  )0,
                 (OS_TICK     )0,
                 (void      * )0,
                 (OS_OPT      )OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR | OS_OPT_TASK_SAVE_FP,
                 (OS_ERR    * )&err);
}


